Configuring a remote-controlled node using NET.PE1CHL Because some nodes are now converting from NET/ROM running on a TNC2 clone to a PC or Atari ST, using an SCC (8530) board and running TCP/IP NET, some guidelines are collected in this document to help configuration of such a node. Auto-start of program The system must be configured in such a way, that it will automatically start the NET program when powered-up or RESET, and will re-start whenever the NET program exits. This can be easily accomplished: - Atari ST systems: Create a folder (directory) on the startup disk, named AUTO. Copy the NET program into this folder, and name it "NET.PRG" (not NET.TOS, as it is normally distributed). After that, copy a program into the AUTO folder that will reboot the machine. Such programs are available in the public domain, and can be obtained from PE1CHL too. - MS-DOS systems: At the end of the AUTOEXEC.BAT file on the startup disk, put the "NET" command to start "NET.EXE", and on the following line put a command to re-boot the system. Programs to do that are available in the public domain, and are usually called something like "BOOT.COM", "REBOOT.COM" etc. You can create your own "BOOT.COM" by creating a file with the 5- byte sequence "EA 00 00 FF FF", using DEBUG. The effect of the above setup is the same for both machines: during the startup procedure the NET program is started, and it normally stays running (i.e. the startup procedure never terminates). Should the NET program ever exit, the next line in the procedure (or the next program in the AUTO folder) will reboot the machine, and the NET program will be re-started. Watchdog In the event of a program crash, it is very inconvenient to have to reset the machine manually. Program crashes occur infre- quently, and only when no operator is watching. The program has a feature that allows the connection of a hardware watchdog circuit, that will RESET the machine when the program seems to hang. The principle of such a circuit, is to generate a RESET pulse when no activity has been sensed on the input of the circuit during a certain interval of time. The program can generate a pulse on some output pin (e.g. a DATA line of the parallel printer port) at each pass through the main loop. It is also possible to connect the PTT output of a channel to such a circuit, because the channel will always transmit the nodelist at fixed intervals, so the node has crashed when the transmitter is not activated for a long time. For the Atari version of the program, the watchdog command also allows the definition of a software timeout that will cause a RESET of the machine after a certain period of inactivity, without requiring external hardware. This method provides some protection against crashes, but is less reliable than the hardware-assisted approach. The command to activate the watchdog pulses is: - Atari ST systems: watchdog 180 600 01 This enables 2 forms of watchdog: 1. A software timer that will reset the machine when no activity has occurred for 180 seconds (or for 600 seconds when a "shell" command has been given). 2. An pulse output will be given on the lowest bit (D0) of the parallel printer output at each pass through the program loop. Other outputs can be selected by speci- fying a different 3rd parameter. A value of 00 for the 3rd parameter will disable the pulses on the parallel output. - MS-DOS systems: watchdog xxx xx Example configuration files Below, the configuration files in use at PI8NOS (as of June 1990) are listed. These are real-life configuration files, that have been in use and have been maintained for nearly a year. The hardware in use at PI8NOS is an Atari Mega-ST2, with an 8- channel SCC interface and a 300baud modem connected to the AUX (RS232) port. ---------------------------------------------------------------- AUTOEXEC.NET ---------------------------------------------------------------- # NET configuration file for PI8NOS network station in Hilversum # uses special SCC interface board with 4 Z8530s installed # AUX (rs232) is used as a connection to an async modem for remote control # MIDI is not used # Drive A: is a 720K floppy, drive G: is a 1MB RAMDisk # setenv NETDISK a: setenv RAMDISK g: # # define buffers for use by SCC driver memstat 100000 buffers 64 2 128 # # attach commands for SCC driver. first init, then attach the channels. attach scc 4 init fffd00 8 3 7 -2 fffd3f 3 p4915200 # 4 thru 7 are spare channels #attach scc 7 ax25 ax3 256 d4800 pi8nos-8 #attach scc 6 ax25 ax2 256 d4800 pi8nos-7 #attach scc 5 ax25 ax1 256 d4800 pi8nos-6 #attach scc 4 ax25 ax0 256 d4800 pi8nos-5 # 3 is west-link on 430.800 attach scc 3 ax25 ln.w 256 d1200 pi8nos-4 # 2 is south-link on 1299.900 attach scc 2 ax25 ln.s 256 d1200 pi8nos-3 # 1 is east-link on 1240.400/1299.400 attach scc 1 ax25 ln.e 256 d1200 pi8nos-2 # 0 is north-link on 1240.800 attach scc 0 ax25 ln.n 256 d1200 pi8nos-1 # # attach the NET/ROM interface & set the call to be used by NET/ROM level 3 # attach netrom pi8nos # # filtering of unwanted AX.25 stations # ax25 exclude nocall ax25 exclude pi8nos # # setup some directories and files. RAMDisk is faster so transfer commonly # used files like HOSTS.NET to it. FTP public area is also on RAMDisk, and # is initialized with some of our configuration files. # cd ${NETDISK}\net mkdir -f ${RAMDISK}\tmp ${RAMDISK}\net ${RAMDISK}\net\mqueue ${RAMDISK}\public # copy $NETHOSTS ${RAMDISK}\net\hosts.net setenv NETHOSTS ${RAMDISK}\net\hosts.net # setenv TMPDIR ${RAMDISK}\tmp setenv TMP $TMPDIR del -f $TMPDIR\*.* # copy ${NETMAILQ}*.* ${RAMDISK}\net\mqueue del -f ${NETMAILQ}*.txt ${NETMAILQ}*.wrk ${NETMAILQ}*.lck setenv NETMAILQ ${RAMDISK}\net\mqueue\ del -f ${NETMAILQ}*.lck # copy ${NETDISK}\net\nr_info.txt ${RAMDISK}\net copy alias $NETHOSTS routes.net finger\*.txt ${RAMDISK}\public setenv ENVSTYLE setenv TIMEZONE MET:0 shell =${NETDISK}\arc.ttp # # remainder of configuration # source config.net # # Addresses, IP routing table and ARP commands, Misc # hostname pi8nos.ampr.org ip address pi8nos source routes.net log ${NETDISK}\net\net.log startup log proc watchdog 120 600 1 # # NET/ROM configuration. Filtering and routes are in NETROM.NET # netrom info ${RAMDISK}\net\nr_info.txt netrom interface ln.n "HVS" 224 netrom interface ln.s "HVS" 224 netrom interface ln.e "HVS" 220 netrom interface ln.w "HVS" 192 lap netrom tcpip link "#TCPIP" source netrom.net netrom route save ${RAMDISK}\net\netrom.rts source ${RAMDISK}\net\netrom.rts # # KISS and AX25 stuff for each TNC connected # mheard ln.n 23 mheard ln.s 23 mheard ln.e 23 mheard ln.w 23 ax25 digipeat ln.n gate ax25 digipeat ln.s gate ax25 digipeat ln.e gate ax25 digipeat ln.w gate #ax25 persist ln.n 128 5 128 60 900 #ax25 persist ln.s 128 5 128 60 900 #ax25 persist ln.e 128 5 128 60 900 ax25 persist ln.w 128 24 64 60 900 # # AX25 ports. 1=TNC 2=NetDigi 3=MHEARD 4=Bridge # ax25 port 2 digi pi8nos-9 ln.n gate ax25 port 2 digi pi8nos-10 ln.e gate ax25 port 2 digi pi8nos-11 ln.s gate ax25 port 2 digi pi8nos-12 ln.w gate ax25 port 3 conn pi8nos-9 ln.n multi ax25 port 3 conn pi8nos-10 ln.e multi ax25 port 3 conn pi8nos-11 ln.s multi ax25 port 3 conn pi8nos-12 ln.w multi ax25 port 4 conn pi8nos-15 ax25 port 6 conn pi8nos-14 # # SCC driver interface groups # param ln.n group 001 param ln.s group 106 param ln.e group 103 param ln.w group 000 # # initialize SCC driver on ln.n # param ln.n 2 128 param ln.n 7 1 param ln.n 8 15 # # initialize SCC driver on ln.s # param ln.s 2 32 param ln.s 7 100 param ln.s 8 15 # # initialize SCC driver on ln.e # param ln.e 1 50 param ln.e 2 32 param ln.e 7 100 param ln.e 8 15 # # initialize SCC driver on ln.w # param ln.w 2 32 param ln.w 7 100 param ln.w 8 15 # # send the netrom nodes on startup # netrom bcnodes ln.n netrom bcnodes ln.s netrom bcnodes ln.e netrom bcnodes ln.w # # now we can safely start all servers # start discard start echo start finger start ftp start smtp source remote.net ax25 start bridge ax25 start mbox ${NETFINGER}network.txt ax25 start mheard ax25 start netdigi # # commands to be run at specified time-of-day # at 00:00 source ${NETDISK}\net\at0000.net at 06:00 source ${NETDISK}\net\at0600.net at 12:00 source ${NETDISK}\net\at1200.net at 18:00 source ${NETDISK}\net\at1800.net # # allow control from AUX port 300 baud / 8 bits / no flow control # auxcon 11 300 8 noflow # hostname ip address ---------------------------------------------------------------- CONFIG.NET ---------------------------------------------------------------- # remainder of configuration # SMTP options # #smtp gateway ... smtp maxclients 5 smtp mode route smtp timer 4000 300 # # Telnet options # echo refuse eol standard # # TCP parameters # tcp irtt 15000 tcp mss 512 tcp timeout 7200 tcp window 432 # # IP parameters # ip ttl 10 # # ICMP parameters # ping length 0 # # AX25 parameters # ax25 digipeat on ax25 maxframe 4 ax25 maxsamml 7 ax25 paclen 256 ax25 pthresh 64 ax25 retry 10 ax25 t1 15000 ax25 t2 1500 ax25 t3 1800000 ax25 t4 900000 ax25 window 2048 # # NET/ROM parameters # netrom nodetimer 1800 netrom obsotimer 1800 netrom param 3 80 6 5 16 3 16 2 netrom param 4 180 3 3 180 10 15 1800 # # Misc settings # escape F10 flow on screen direct ---------------------------------------------------------------- ROUTES.NET ---------------------------------------------------------------- # IP routing table for PI8NOS # # ARP statements for AX.25 stations # arp add pa3ayb ax25:ln.s pa3ayb-7 pi8rni-1 pi8rni-7 pi8ayb-7 arp add pa3azk ax25:ln.s pa3azk-7 pi8rni-1 pi8rni-7 arp add pa3fmc ax25:ln.s pa3fmc-9 pi8rni-1 pi8rni-7 arp add pe1dcy ax25:ln.s pe1dcy-7 pi8rni-1 pi8rni-7 arp add pe1krc ax25:ln.s pe1krc-7 pi8rni-1 pi8rni-7 # # ARP statements and ROUTES for NET/ROM stations # route add dd9qp netrom arp add dd9qp netrom dd9qp-9 route add pa0mjr netrom arp add pa0mjr netrom pa0mjr-9 route add pa0sgl netrom arp add pa0sgl netrom pa0sgl-9 route add pa3bat netrom arp add pa3bat netrom pa3bat-9 route add pa3bba netrom arp add pa3bba netrom pa3bba-7 route add pa3bzt netrom arp add pa3bzt netrom pa3bzt-9 route add pa3ecp-7 netrom arp add pa3ecp-7 netrom pa3ecp-7 route add pa3fbg netrom arp add pa3fbg netrom pa3fbg-2 route add pe0mar netrom arp add pe0mar netrom pe0mar route add pe0mar-7 netrom arp add pe0mar-7 netrom pe0mar-3 route add pe1ayx netrom arp add pe1ayx netrom pi8hrl-9 route add pe1btv netrom arp add pe1btv netrom pe1btv-9 route add pe1chl netrom arp add pe1chl netrom pe1chl-9 route add pe1dna netrom arp add pe1dna netrom pe1dna-9 route add pi8eae netrom arp add pi8eae netrom pi8eae-9 route add pi8gtb netrom arp add pi8gtb netrom pi8gtb-7 route add pi8mac netrom arp add pi8mac netrom pi8mac route add pi8mid netrom arp add pi8mid netrom pi8mid-7 # # set direct route for nearby networks (no default, to get unreachable mesgs) # route add Holland/16 ln.w # # Exceptions to gateway routings # route add pa0ma ln.w route add pa3ayb ln.s route add pa3azk ln.s route add pa3eae ln.w route add pa3eoa ln.w route add pa3fmc ln.s route add pb0aaq ln.w route add pe1dcy ln.s route add pe1kaq ln.w route add pe1krc ln.s # # stations reachable via (their own private) gateways # route add pa2aga via pi8mac route add pa3cay via pa3fmc route add pa3ecp via pa3ecp-7 route add pa3ein via pe1chl route add sys2.pe1chl via pe1chl # # some networks reachable via gateways # route add Germany/16 via dd9qp route add PA_DRnet/22 via pa0adc route add PA_FLnet/22 via pe1kaq route add PA_FRnet/22 via pa3dvg route add PA_GLnet/22 via dd9qp route add PA_GRnet/22 via pa3dvg route add PA_LBnet/22 via pe1ayx route add PA_NBOnet/22 via pe1dna route add PA_NBWnet/22 via pi8gtb route add PA_NH1net/22 via pe1btv route add PA_NH2net/22 via pa3fmc route add PA_OVnet1/22 via pa3daz route add PA_UTnet/22 via pe1chl route add PA_ZH1net/22 via pa3ecp-7 route add PA_ZH2net/22 via pe0mar-7 route add PA_ZLnet/22 via pa3ecp-7 ---------------------------------------------------------------- NETROM.NET ---------------------------------------------------------------- # NET/ROM routes and filters for PI8NOS # only the nodes in the list below are accepted for automatic route table # updates (NODES broadcasts). this is controlled by the "mode accept". # netrom nodefilter mode accept # # SYSOP has access to all ports (in case of problems) # netrom nodefilter add pe1chl-9 ln.e netrom nodefilter add pe1chl-9 ln.n netrom nodefilter add pe1chl-9 ln.s netrom nodefilter add pe1chl-9 ln.w # netrom nodefilter add pa3dzi ln.n netrom nodefilter add pa3dzi-1 ln.n netrom nodefilter add pa3dzi-3 ln.n netrom nodefilter add pa3ecp-7 ln.w netrom nodefilter add pi8eae ln.w netrom nodefilter add pi8eae-9 ln.w netrom nodefilter add pi8esa-7 ln.w netrom nodefilter add pi8rni-1 ln.s netrom nodefilter add pi8vrz-1 ln.e # # a list of nodes never accepted in node broadcasts. these are known to have # fixed nodelists and parameters set in such a way that connecting them from # here is impossible (they don't accept new nodes) # netrom exclude on1abt netrom exclude on1anr netrom exclude on1apd netrom exclude on1awb netrom exclude on1kgx netrom exclude on4awp netrom exclude on4cp netrom exclude on4hu netrom exclude on5pl netrom exclude on6nr netrom exclude on6or netrom exclude on6rm netrom exclude on7an netrom exclude on7rc ---------------------------------------------------------------- REMOTE.NET ---------------------------------------------------------------- # commands to start remote-control servers # put in a separate file so that we don't have to send it every time # autoexec.net is updated (somebody could be monitoring us) # start rcmd 333 "dsfjkaewrqbefndscuwerfjasfvaaaaarughrueggdfv" start remote 3534 ---------------------------------------------------------------- ONEXIT.NET ---------------------------------------------------------------- # this file will be executed on "exit" from NET # copy ${NETMAILQ}*.* ${NETDISK}\net\mqueue del ${NETMAILQ}*.* netrom route save ---------------------------------------------------------------- AT0000.NET ---------------------------------------------------------------- # commands executed each day at 00:00 # copy ${RAMDISK}\net\mqueue\sequence.seq ${NETDISK}\net\mqueue ---------------------------------------------------------------- AT0600.NET ---------------------------------------------------------------- # commands executed each day at 06:00 # ---------------------------------------------------------------- AT1200.NET ---------------------------------------------------------------- # commands executed each day at 12:00 # copy ${RAMDISK}\net\mqueue\sequence.seq ${NETDISK}\net\mqueue ---------------------------------------------------------------- AT1800.NET ---------------------------------------------------------------- # commands executed each day at 18:00 # Rob PE1CHL